package com.lagou.response;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class DServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("访问到了DServlet");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }

    /*请求转发与重定向的区别
    * 1、哪个对象
    *   转发（request对象的方法）
    *       request.getRequestDispatcher("/bServlet").forward(request, response);
    *   重定向（response对象的方法）
    *       response.sendRedirect("/servlet_demo/bServlet");
    * 2、几次请求
    *   转发：
    *       地址栏：没有改变
    *       浏览器：发了一次请求
    *       服务器：只有一对请求和响应对象
    *       发生的位置：服务器
    *   重定向：
    *       地址栏：发生了改变
    *       浏览器：发了两次请求
    *       服务器：有两对请求和响应对象
    *       发生的位置：浏览器
    * 3、小结
    *   写法
    *       转发（"/servlet资源路径"）服务器内部行为
    *       重定向（"/虚拟路径（项目名/servlet资源路径"）浏览器外部行为）
    *   使用场景（重点掌握）
    *       如果需要传递数据（request域），使用转发
    *       如果不需要传递数据（request域），使用重定向
    *
    * */
}
